package com.hjl.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.hjl.mapper.UserMapper;
import com.hjl.model.User;
import com.hjl.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @author ServivE
 * @version 0.1
 * @className UserServiceImpl
 * @description
 * @date 2024/8/21 11:10
 * @since jdk17
 */
@Service("UserService")
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> queryAll() {
        List<User> users = userMapper.queryAll();
        return users;
    }

    public Page queryLikeUsers(Map<String, Object> cond) {

        // 创建一个空的 Page 对象
        Page page = new Page<>();

        //根据条件查询符合条件的记录总数，赋值给page的totalNum变量
        page.setTotal(userMapper.getLikeUsersCount(cond));

        //从请求参数中获得每页的大小
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));

        // 设置每页显示的数量
        page.setPageSize(pageSize);

        //从请求参数中获得当前页码
        int pageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));

        // 设置当前页码
        page.setPageNum(pageNum);

        // 计算总页数
        page.setPageNum((int) (page.getTotal() / page.getPageSize() + (page.getTotal() % pageSize == 0 ? 0 : 1)));

        // 开启 MyBatis 的分页插件支持  根据条件查询符合的用户列表，赋值给page的result变量
        page = PageHelper.startPage(pageNum, pageSize);

        // 执行查询获取类似用户列表
        List list = userMapper.getLikeUsers(cond);

        // 返回填充好的 Page 对象
        return page;

    }

    @Override
    public int addUser(User user) {
        return userMapper.addUser(user);
    }

    @Override
    public int delUser(int id) {
        return userMapper.delUser(id);
    }

    public User getUser(User user) {
        return userMapper.getUser(user);
    }

    public void editUser(User user) {
        userMapper.editUser(user);
    }

}
